#include "MyTGL2/DataType/MytQuaternion.hpp"

void Print(const Myt::Quaternion<double>& c){
	printf("%g+%gi+%gj+%gk\n",c.Data[0],c.Data[1],c.Data[2],c.Data[3]);
}

int main(){
	/*
	4.25+1.59i+2.65j+3.58k
	4.25+1.59i+2.65j+3.58k
	4.25+1.59i+2.65j+3.58k
	5.85+9.87i+4.47j+12.03k
	5.85+9.87i+4.47j+12.03k
	2.03+1.59i+2.65j+3.58k
	2.03+1.59i+2.65j+3.58k
	-2.03+-1.59i+-2.65j+-3.58k
	0.43+-6.69i+0.83j+-4.87k
	0.43+-6.69i+0.83j+-4.87k
	3.4854+1.7649i+2.9415j+3.9738k
	3.4854+1.7649i+2.9415j+3.9738k
	3.4854+1.7649i+2.9415j+3.9738k
	-39.7298+46.185i+29.1032j+17.1866k
	-39.7298+46.185i+29.1032j+17.1866k
	2.82883+1.43243i+2.38739j+3.22523k
	2.82883+1.43243i+2.38739j+3.22523k
	0.108153+-0.0547653i+-0.0912755j+-0.123308k
	0.376773+-0.249421i+-0.0978652j+0.0147194k
	0.376773+-0.249421i+-0.0978652j+0.0147194k
	*/
	Myt::Quaternion<double> c1={3.14,1.59,2.65,3.58},c2={2.71,8.28,1.82,8.45},c3;
	c3=c1+1.11;
	Print(c3);
	c3=c1;
	c3+=1.11;
	Print(c3);
	c3=1.11+c1;
	Print(c3);
	c3=c1+c2;
	Print(c3);
	c3=c1;
	c3+=c2;
	Print(c3);
	///
	c3=c1-1.11;
	Print(c3);
	c3=c1;
	c3-=1.11;
	Print(c3);
	c3=1.11-c1;
	Print(c3);
	c3=c1-c2;
	Print(c3);
	c3=c1;
	c3-=c2;
	Print(c3);
	///
	c3=c1*1.11;
	Print(c3);
	c3=c1;
	c3*=1.11;
	Print(c3);
	c3=1.11*c1;
	Print(c3);
	c3=c1*c2;
	Print(c3);
	c3=c1;
	c3*=c2;
	Print(c3);
	///
	c3=c1/1.11;
	Print(c3);
	c3=c1;
	c3/=1.11;
	Print(c3);
	c3=1.11/c1;
	Print(c3);
	c3=c1/c2;
	Print(c3);
	c3=c1;
	c3/=c2;
	Print(c3);
	///
	return 0;
}